home *** CD-ROM | disk | FTP | other *** search
/ Day Cry / Day Cry CD.bin / oh_towns / ein / sources / einlib.lzh / LIBSRC.LZH / EIN_ASM1.ASM next >
Assembly Source File  |  1994-07-18  |  3KB  |  123 lines

  1.     .386p
  2.  
  3. CGROUP    group    EIN_ASMFUNC
  4. EIN_ASMFUNC        segment    public dword 'CODE'
  5.                 assume    cs:EIN_ASMFUNC
  6.  
  7. ;    int24ânâôâhâë
  8.  
  9.     align    4
  10. _EIN_errhandle    proc    far
  11.     mov        al,3                        ; "âVâXâeâÇâRü[âïÄ╕ös"é≡ÄwÆΦ
  12.     iretd
  13. _EIN_errhandle    endp
  14.  
  15. ;typedef struct _EINSAVEVECT{
  16. ;    unsigned long   realAdr;
  17. ;    unsigned long   *offset;
  18. ;    unsigned long   segment;
  19. ;}EINSAVEVECT;
  20. ;
  21. ;/*<Func>================================================================
  22. ;*   void EIN_setVector( unsigned long *save );
  23. ;*
  24. ;*    üyèT  ùvüz    int24hânâôâhâëé╠É▌ÆΦ
  25. ;*
  26. ;*    üyï@  ö\üz    
  27. ;*
  28. ;*    üyôⁿ  ù═üz    *save        : î├éóINT24Hânâôâhâëé≡ò█æ╢é╖éΘù╠êµ(12byte)
  29. ;*                                üª typedef struct _EINSAVEVECT{
  30. ;*                                        unsigned long   realAdr;
  31. ;*                                        unsigned long   *offset;
  32. ;*                                        unsigned long   segment;
  33. ;*                                    }EINSAVEVECT;
  34. ;*
  35. ;*    üyÆì  ê╙üz    
  36. ;*
  37. ;*    üyÄQ  Å╞üz    
  38. ;*
  39. ;*-----------------------------------------------------------------------
  40. ;*    V11L10    1994.07.06/Nam
  41. ;*</Func>==============================================================*/
  42.     public    EIN_setVector
  43.     db    'EIN_setVector',13
  44.     align    4
  45. EIN_setVector    proc    near
  46.     ; get para
  47.     mov     ecx,[esp+4]                 ; ecx = ê°Éöé╠â|âCâôâ^
  48.     push    ebp
  49.     push    ds
  50.     push    es
  51.     push    ebx
  52.     mov     ebp, ecx                    ; ebp = ê°Éöé╠â|âCâôâ^
  53.     ; âvâìâeâNâgâéü[âhèäéΦì₧é▌âxâNâ^é≡æ▐ö≡
  54.     mov        ax,2502h                    ; 2502h: âlâCâeâBâuèäéΦì₧é▌âxâNâ^ĵô╛
  55.     mov        cl,24h                      ;   24h: Äµô╛èäéΦì₧é▌ö╘ìå
  56.     int        21h                         ; ü¿ es:ebx é╔âAâhâîâXé≡ò╘é╖
  57.     mov        [ebp+4], ebx                ; âAâhâîâXé≡ò█æ╢
  58.     xor        ebx, ebx                    ; (é▄é╕ebxé≡âNâèâAé╡é─é¿éóé─)
  59.     mov        bx,es                       ; (bx = es)
  60.     mov        [ebp+8], ebx                ; âZâOâüâôâgé≡ò█æ╢
  61.     ; âèâAâïâéü[âhèäéΦì₧é▌âxâNâ^é≡æ▐ö≡
  62.     mov        ax,2503h                    ; âèâAâïâéü[âhèäéΦì₧é▌âxâNâ^ĵô╛
  63.     int        21h                         ; ü¿ ebxÅπê╩16bit: âZâOâüâôâgâpâëâOâëât
  64.                                         ;    ebxë║ê╩16bit: âIâtâZâbâg
  65.     mov        [ebp],ebx
  66.     ; âlâCâeâBâuâéü[âhèäéΦì₧é▌é≡ì─É▌ÆΦ
  67.     mov        ax,2506h                    ; 
  68.     mov        cl,24h                      ;  24h: É▌ÆΦèäéΦì₧é▌ö╘ìå
  69.     push    cs
  70.     pop        ds                          ; ds = cs (ânâôâhâëé╠âxü[âXâAâhâîâX)
  71.     mov        edx,offset _EIN_errhandle    ; edx : ânâôâhâëé╓é╠âIâtâZâbâg
  72.     int        21h
  73.  
  74.     pop        ebx
  75.     pop        es
  76.     pop        ds
  77.     pop        ebp
  78.     ret
  79. EIN_setVector    endp
  80.  
  81. ;
  82. ;/*<Func>================================================================
  83. ;*   void EIN_resetVector(unsigned long *save );
  84. ;*
  85. ;*    üyèT  ùvüz    int24hânâôâhâëé≡ò£ïA
  86. ;*
  87. ;*    üyï@  ö\üz    
  88. ;*
  89. ;*    üyôⁿ  ù═üz    *save        : î├éóINT24Hânâôâhâëé≡ò█æ╢é╡é╜ù╠êµ(12byte)
  90. ;*
  91. ;*    üyÆì  ê╙üz    
  92. ;*
  93. ;*    üyÄQ  Å╞üz    
  94. ;*
  95. ;*-----------------------------------------------------------------------
  96. ;*    V11L10    1994.07.06/Nam
  97. ;*</Func>==============================================================*/
  98.     public    EIN_resetVector
  99.     db    'EIN_resetVector',15
  100.     align    4
  101. EIN_resetVector    proc    near
  102.     mov     ecx,[esp+4]
  103.     push    ebp
  104.     mov        ebp,ecx                     ; ebp = ê°Éöé╠â|âCâôâ^
  105.     push    ds
  106.     push    ebx
  107.  
  108.     mov        ax,2507h                    ; âèâAâïé╞âlâCâeâBâué╠ânâôâhâëÉ▌ÆΦ
  109.     mov        cl,24h                      ; É▌ÆΦèäéΦì₧é▌ö╘ìå
  110.     mov        ebx, [ebp]                  ; ebx = âèâAâïèäéΦì₧é▌ânâôâhâë
  111.     lds        edx, pword ptr [ebp+4]      ; ds:edx = âvâìâeâNâgèäéΦì₧é▌ânâôâhâë
  112.     int        21h
  113.  
  114.     pop        ebx
  115.     pop        ds
  116.     pop        ebp
  117.     ret
  118. EIN_resetVector    endp
  119.  
  120.  
  121. EIN_ASMFUNC    ends
  122.         end
  123.